Compile-time Optimization of a Constraint-based Compiler Back-end
نویسنده
چکیده
Generating optimal code is a challenging problem. Traditional compilers break down the problem complexity by solving the main interdependent compilation tasks (that is, instruction selection, register allocation and instruction scheduling) in stages, and optimizing each stage individually using heuristics. While this approach achieves good results, it clearly compromises on the generated code quality. In the last decades, combinatorial optimization approaches for code generators have emerged that open up the potential for optimal code generation. One such approach is the Unison code generator. It captures the tasks of register allocation and instruction scheduling in one combinatorial model, and hence allowing for task-interdependent code optimizations, achieving performance improvements of up to 40%2 for generated codes. However, combinatorial approaches suffer from slow compilation times due to the exponentially growing search effort. This paper investigates refinements of Unison’s combinatorial model, aiming at cutting down the search effort for faster compilation times.
منابع مشابه
Experiences with Constraint - based
Array data dependence analysis provides important information for optimization of scientiic programs. Array dependence testing can be viewed as constraint analysis, although traditionally general-purpose constraint manipulation algorithms have been thought to be too slow for dependence analysis. We have explored the use of exact constraint analysis , based on Fourier's method, for array data de...
متن کاملA Constraint Database System for Temporal Knowledge
This paper describes how the technology of deductive constraint database systems and constraint query languages can be used to represent and reason with tem poral knowledge First we summarize our approach to manipulating constraints over reals within deductive database sys tems This approach is based on the compile time rewriting of clauses which are not admissible Then we show how the timestam...
متن کاملExperiences with Constraint-based Array Dependence Analysis Experiences with Constraint-based Array Dependence Analysis
Array data dependence analysis provides important information for optimization of scientiic programs. Array dependence testing can be viewed as constraint analysis, although traditionally general-purpose constraint manipulation algorithms have been thought to be too slow for dependence analysis. We have explored the use of exact constraint analysis, based on Fourier's method, for array data dep...
متن کاملAdding Constraint Solving to Mercury
The logic programming language Mercury is designed to support programming in the large. Programmer declarations in conjunction with powerful compile-time analysis and optimization allow Mercury programs to be very efficient. The original design of Mercury did not support constraint logic programming (CLP). This paper describes the extensions we added to Mercury to support CLP. Unlike similarly ...
متن کاملChanging Interaction of Compiler and Architecture
W ith recent developments in compilation technology and architectural design, the line between traditional hardware and software roles has become increasingly blurred. The compiler can now see the processor's inner structure, which lets architects exploit sophisticated program analysis techniques to hide branch and memory access delays, for example. Processors can now implement register renamin...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015